// "Copyright [2021] <Copyright Shengkai Lin>"

// This module serve as a allocater and a task manager
// in a node.

package cluster.network_devices;

simple Cpu {
    parameters:
        int my_global_index;  // Used to decide if it is the master cpu
        int my_index;
        bool need_wait_topo = default(true);
        // Three times of the fiber delay(because the ack msg should use 3e-7s to get the dest)
        double secure_time = default(0.00001);

    gates:
        // Connected to the gpu, used by normal cpu
        inout gpu_port;
        // Connected to other cpus, used by master cpu
        inout cpu_port[];
        // Connected to the central controller or master cpu
        inout controller_port;
}